package br.com.virtualsoluction.bo;

import br.com.virtualsoluction.dao.DAOPessoa;
import java.util.ArrayList;
import java.util.List;

public class Pessoa {

    private int id;
    private String cpfCNPJ;
    private String razaoSocial;
    private int posicao;
    private List<Pessoa> pessoas = new ArrayList<Pessoa>();

    //Metodos getters
    public String getCpfCNPJ() {
        return cpfCNPJ;
    }

    public int getId() {
        return id;
    }

    public String getRazaoSocial() {
        return razaoSocial;
    }

    //Metodos setters
    public void setCpfCNPJ(String cpfCNPJ) {
        this.cpfCNPJ = cpfCNPJ;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setRazaoSocial(String razaoSocial) {
        this.razaoSocial = razaoSocial;
    }

    public void getListaPessoas() {

        DAOPessoa dp = new DAOPessoa();
        this.pessoas.clear();
        this.pessoas = dp.getList();
        this.posicao = (this.pessoas.size() - 1);

        this.id = this.pessoas.get(this.posicao).id;
        this.razaoSocial = this.pessoas.get(this.posicao).razaoSocial;
        this.cpfCNPJ = this.pessoas.get(this.posicao).cpfCNPJ ;
    }

    public boolean inserir() {
        boolean r;
        DAOPessoa dp = new DAOPessoa();
        r = dp.insert(this);

        if(r){
          this.getListaPessoas();
          return r;
        }else
            return false;
    }

    public boolean atualizar() {
        boolean r;
        DAOPessoa dp = new DAOPessoa();
        r = dp.update(this);
        if(r)
            this.getListaPessoas();
        return r;
    }

 public void anterior(){

        if(this.posicao > 0)
            this.posicao--;

        this.id     = this.pessoas.get(this.posicao).id;
        this.cpfCNPJ  = this.pessoas.get(this.posicao).cpfCNPJ;
        this.razaoSocial    = this.pessoas.get(this.posicao).razaoSocial;

    }

    public void proximo(){

        if(this.posicao < (this.pessoas.size() -1))
            this.posicao++;

        this.id     = this.pessoas.get(this.posicao).id;
        this.cpfCNPJ  = this.pessoas.get(this.posicao).cpfCNPJ;
        this.razaoSocial    = this.pessoas.get(this.posicao).razaoSocial;
    }

    public List<Pessoa> getPessoas(){
        return this.pessoas;
    }

    public Pessoa consulta(int id){
        DAOPessoa dp = new DAOPessoa();
        return dp.search(id);
    }

}